package request;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.io.IOException;
import java.util.Date;

/**
 * 演示请求分派，该 Servlet 将请求分派给另外一个对象
 */
public class Dispatcher extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        // 请求分派前，可以负责部分相应头的设置
        resp.setHeader("aaa", "AAA");

        // 可以向 resp 对象中写入响应体，但是 forward 之后会被忽略，但是 include 之后不会
        resp.getWriter().println("This is a message from Dispatcher");

        // 使用 req 对象的属性域在本 Servlet 与下一个 Servlet 之间传递数据
        req.setAttribute("addTime", new Date());

        // 使用 req 对象获得 RequestDispatcher ，方法参数是 Servlet 路径
        RequestDispatcher dispatcher = req.getRequestDispatcher("/request/receiver");

        // 将请求分派给另一个 servlet
        dispatcher.forward(req, resp);
        //dispatcher.include(req, resp);
    }
}
